<template>
    <view>
      <view class="goods-list">
        <view v-for="(goods, i) in goodsList" :key="i" @click="gotoDetail(goods)">
          <my-goods :goods="goods"></my-goods>
        </view>
      </view>
    </view>
  </template>
<script>
  export default {
    data() {
      return {
        // 请求参数对象
        queryObj:{
          // 查询关键词
          query:'',
          // 商品分类id
          cid:'',
          // 页码值
          pagenum:1,
          // 每页显示多少数据
          pagesize:10
        },
        // 存放商品列表
        goodsList:[],
        total:0,
        // 节流阀
        isloading:false
      };
    },
    onLoad(options) {
      this.queryObj.query=options.query || ''
      this.queryObj.cid=options.cid ||''
      this.getGoodList()
    },
    methods:{
     async getGoodList(cb){
       // 打开节流阀
       this.isloading=true
     const {data:res} =await uni.$http.get('/api/public/v1/goods/search',this.queryObj)
      // 关闭节流阀
      this.isloading=false
      cb&&cb()
    if(res.meta.status!==200)  return uni.$showMsg()  
    this.goodsList=[...this.goodsList,...res.message.goods]
    this.total=res.message.total
     },
     onReachBottom(){
       // 判断数据是否加载完成
       if(this.queryObj.pagenum*this.queryObj.pagesize>=this.total) return uni.$showMsg('没有更多数据了！')
       // 如果上面还在发起请求则不在发起请求
       if(this.isloading) return
       // 让页码自增加+1
       this.queryObj.pagenum++
       this.getGoodList()
     },
     // 下拉刷新事件
     onPullDownRefresh(){
       // 重置关键数据
       this.queryObj.pagenum=1
       this.total=0
       this.isloading=false
       this.goodsList=[]
       // 重新发起请求
       this.getGoodList(()=>uni.stopPullDownRefresh())
     },
     // 跳转到商品详情页面
     gotoDetail(goods){
       uni.navigateTo({
         url:'/subpkg/goods_detail/goods_detail?goods_id='+goods.goods_id
       })
     }
    },
  }
</script>

<style lang="scss">

</style>
